module top_predc(
	input				clk		,

	input	[11:0]		a		,
	input	[11:0]		b		,
	input	[11:0]		c		,
	input				e 		,
	
	output	[11:0]		y

);
    wire               [   9: 0]        d                          ;
fifo_d u_fifo_d(
    .clk                                (clk                       ),
    .e                                  (e                         ),
    .d                                  (d                         ) 
);
wire [21:0]		mul_a_d;
mul_12_10 u_mul_a_d(//1clk
	.clk		(clk),
	.a			(d),
	.b			(a),
	.y			(mul_a_d)
);
wire [11:0]		sin_c;
sin_tab	u_sin_tab(//delay 11clk
	.clk		(clk),
	.c			(c),
	.sin_c		(sin_c)
);
wire [12:0]		add_a_b;
add u_add_a_b(//1clk
	.clk		(clk),
	.a			(a),
	.b			(b),
	.y			(add_a_b)
);
wire [10:0]		div_ad_ab;
div u_div_ad_ab(//12clk
	.clk		(clk),
	.a			(mul_a_d),
	.b			(add_a_b),
	.y			(div_ad_ab)
);
mul_11_11 u_mul_adab_sinc(//1clk
	.clk		(clk),
	.a			(div_ad_ab),
	.b			(sin_c),
	.y			(y)
);
endmodule

module add(
	input				clk		,
	input	[11:0]		a		,
	input	[11:0]		b		,
	output 	reg[12:0]	y		
);
reg [12:0]y_temp ;
always @(posedge clk) begin
	y_temp <= a + b;
	y <= y_temp;
end
endmodule

module mul_12_10(//for a*d
	input				clk		,
	input	[9:0]		a		,
	input	[11:0]		b		,
	output 	reg[21:0]	y		
);
wire [9:0]	temp_a0  = {10{b[0 ]}} & a;
wire [9:0]	temp_a1  = {10{b[1 ]}} & a;
wire [9:0]	temp_a2  = {10{b[2 ]}} & a;
wire [9:0]	temp_a3  = {10{b[3 ]}} & a;
wire [9:0]	temp_a4  = {10{b[4 ]}} & a;
wire [9:0]	temp_a5  = {10{b[5 ]}} & a;
wire [9:0]	temp_a6  = {10{b[6 ]}} & a;
wire [9:0]	temp_a7  = {10{b[7 ]}} & a;
wire [9:0]	temp_a8  = {10{b[8 ]}} & a;
wire [9:0]	temp_a9  = {10{b[9 ]}} & a;
wire [9:0]	temp_a10 = {10{b[10]}} & a;
wire [9:0]	temp_a11 = {10{b[11]}} & a;
reg	 [12:0] reg_sum0;
reg	 [12:0] reg_sum1;
reg	 [12:0] reg_sum2;
reg	 [12:0] reg_sum3;
always @(posedge clk) begin
	reg_sum0 <= temp_a0 + (temp_a1  << 1) + (temp_a2 << 2)	;
	reg_sum1 <= temp_a3 + (temp_a4  << 1) + (temp_a5 << 2)	;
    reg_sum2 <= temp_a6 + (temp_a7  << 1) + (temp_a8 << 2)	;
    reg_sum3 <= temp_a9 + (temp_a10 << 1) + (temp_a11<< 2) 	;
end
wire [15:0]	temp2_sum0  = reg_sum0 + (reg_sum1<<3);
wire [15:0]	temp2_sum1  = reg_sum2 + (reg_sum3<<3);
always @(posedge clk) begin
	y <= temp2_sum0 + (temp2_sum1<<6);
end
endmodule

module mul_11_11(//for (a*d/(a+b)) * sin(c)
	input				clk		,
	input	[10:0]		a		,
	input	[11:0]		b		,
	output 	[11:0]		y		
);
wire [10:0]	temp_a0  = {11{b[0 ]}} & a;
wire [10:0]	temp_a1  = {11{b[1 ]}} & a;
wire [10:0]	temp_a2  = {11{b[2 ]}} & a;
wire [10:0]	temp_a3  = {11{b[3 ]}} & a;
wire [10:0]	temp_a4  = {11{b[4 ]}} & a;
wire [10:0]	temp_a5  = {11{b[5 ]}} & a;
wire [10:0]	temp_a6  = {11{b[6 ]}} & a;
wire [10:0]	temp_a7  = {11{b[7 ]}} & a;
wire [10:0]	temp_a8  = {11{b[8 ]}} & a;
wire [10:0]	temp_a9  = {11{b[9 ]}} & a;
wire [10:0]	temp_a10 = {11{b[10]}} & a;
reg	 [13:0] reg_sum0;
reg	 [13:0] reg_sum1;
reg	 [13:0] reg_sum2;
reg	 [12:0] reg_sum3;
always @(posedge clk) begin
	reg_sum0 <= temp_a0 + (temp_a1  << 1) + (temp_a2 << 2)	;
	reg_sum1 <= temp_a3 + (temp_a4  << 1) + (temp_a5 << 2)	;
    reg_sum2 <= temp_a6 + (temp_a7  << 1) + (temp_a8 << 2)	;
    reg_sum3 <= temp_a9 + (temp_a10 << 1) 					;
end
wire [16:0]	temp2_sum0  = reg_sum0 + (reg_sum1<<3);
wire [15:0]	temp2_sum1  = reg_sum2 + (reg_sum3<<3);
reg  [21:0]	temp2_sum2 	;
always @(posedge clk) begin
	temp2_sum2  <= temp2_sum0 + (temp2_sum1<<6);
end
wire [10:0] result		= temp2_sum2[10] ? (temp2_sum2[21:11] + 1'b1) : temp2_sum2[21:11];
assign y = b[11] ? (~{1'b0,result} + 1'b1) : {1'b0,result};
endmodule

module div(
	input				clk		,
	input	[21:0]		a		,
	input	[12:0]		b		,
	output 	reg[10:0]	y		
);
reg [20:0]	a_temp0;
reg [12:0]	b_temp0;
reg [1:0]	y_temp0;
wire [14:0] minus0_res0 = a[21:8] - b;//a[21:8]-b 
wire [13:0] minus0_res1 = a[21:9] - b;//a[21:8]-2*b
wire [14:0] minus0_res2 = (~minus0_res1[13]) ? ({minus0_res1[12:0],a[8]} - b) : 15'b0;//a[21:8]-3*b
always @(posedge clk) begin//x00 write 11，x01 write 10，01x write 01，11x write 00
	a_temp0[7:0] <= a[7:0];
	b_temp0 <= b;
	y_temp0[1] <= ~minus0_res1[13];//x00 write 11，x01 write 10，01x write 01，11x write 00
	if(~minus0_res1[13]) begin//a[21:8]>=2*b
		a_temp0[20:8] <= (~minus0_res2[14]) ? minus0_res2[13:0] : {minus0_res1[12:0],a[8]};//a[21:8] >= 3*b ?
		y_temp0[0] <= ~minus0_res2[14];
	end
	else begin //a[21:8]<2*b
		a_temp0[20:8] <= (~minus0_res0[14]) ? minus0_res0[13:0] : a[21:8];//a[21:8] >= b ?
		y_temp0[0] <= ~minus0_res0[14];
	end
end
reg [18:0]	a_temp1;
reg [12:0]	b_temp1;
reg [3:0]	y_temp1;
wire [14:0] minus1_res0 = a_temp0[19:6] 				- b_temp0;//a[19:6]-b 
wire [14:0] minus1_res1 = a_temp0[20:7] 				- b_temp0;//a[20:7]-2*b
wire [14:0] minus1_res2 = (~minus1_res1[14]) ? ({minus1_res1[12:0],a_temp0[6]}- b_temp0) : 15'b0;//a[21:8]-3*b
always @(posedge clk) begin//x00 write 11，x01 write 10，01x write 01，11x write 00
	a_temp1[5:0]<= a_temp0[5:0];
	b_temp1 	<= b_temp0;
	y_temp1[3:1]<= {y_temp0[1:0],~minus1_res1[14]};//x00 write 11，x01 write 10，01x write 01，11x write 00
	if(~minus1_res1[14]) begin//a[21:8]>=2*b
		a_temp1[18:6] 	<= (~minus1_res2[14]) ? minus1_res2[13:0] : {minus1_res1[12:0],a_temp0[6]};//>= 3*b ?
		y_temp1[0] 		<= ~minus1_res2[14];
	end
	else begin //a[21:8]<2*b
		a_temp1[18:6] 	<= (~minus1_res0[14]) ? minus1_res0[13:0] : a_temp0[19:6];//>= b ?
		y_temp1[0] 		<= ~minus1_res0[14];
	end
end
reg [16:0]	a_temp2;
reg [12:0]	b_temp2;
reg [5:0]	y_temp2;
wire [14:0] minus2_res0 = a_temp1[17:4] 				- b_temp1;//a[19:6]-b 
wire [14:0] minus2_res1 = a_temp1[18:5] 				- b_temp1;//a[20:7]-2*b
wire [14:0] minus2_res2 = (~minus2_res1[14]) ? ({minus2_res1[12:0],a_temp1[4]}- b_temp1) : 15'b0;//a[21:8]-3*b
always @(posedge clk) begin//x00 write 11，x01 write 10，01x write 01，11x write 00
	a_temp2[3:0]<= a_temp1[3:0];
	b_temp2 	<= b_temp1;
	y_temp2[5:1]<= {y_temp1[3:0],~minus2_res1[14]};//x00 write 11，x01 write 10，01x write 01，11x write 00
	if(~minus2_res1[14]) begin//a[21:8]>=2*b
		a_temp2[16:4] 	<= (~minus2_res2[14]) ? minus2_res2[13:0] : {minus2_res1[12:0],a_temp1[4]};// >= 3*b ?
		y_temp2[0] 		<= ~minus2_res2[14];
	end
	else begin //a[21:8]<2*b
		a_temp2[16:4] 	<= (~minus2_res0[14]) ? minus2_res0[13:0] : a_temp1[17:4];//>= b ?
		y_temp2[0] 		<= ~minus2_res0[14];
	end
end
reg [14:0]	a_temp3;
reg [12:0]	b_temp3;
reg [7:0]	y_temp3;
wire [14:0] minus3_res0 = a_temp2[15:2] 				- b_temp2;//a[19:6]-b 
wire [14:0] minus3_res1 = a_temp2[16:3] 				- b_temp2;//a[20:7]-2*b
wire [14:0] minus3_res2 = (~minus3_res1[14]) ? ({minus3_res1[12:0],a_temp2[2]}- b_temp2) : 15'b0;//a[21:8]-3*b
always @(posedge clk) begin//x00 write 11，x01 write 10，01x write 01，11x write 00
	a_temp3[1:0]<= a_temp2[1:0];
	b_temp3 	<= b_temp2;
	y_temp3[7:1]<= {y_temp2[5:0],~minus3_res1[14]};//x00 write 11，x01 write 10，01x write 01，11x write 00
	if(~minus3_res1[14]) begin//a[21:8]>=2*b
		a_temp3[14:2] 	<= (~minus3_res2[14]) ? minus3_res2[13:0] : {minus3_res1[12:0],a_temp2[2]};//>= 3*b ?
		y_temp3[0] 		<= ~minus3_res2[14];
	end
	else begin //a[21:8]<2*b
		a_temp3[14:2] 	<= (~minus3_res0[14]) ? minus3_res0[13:0] : a_temp2[15:2];//>= b ?
		y_temp3[0] 		<= ~minus3_res0[14];
	end
end
reg [12:0]	a_temp4;
reg [12:0]	b_temp4;
reg [9:0]	y_temp4;
wire [14:0] minus4_res0 = a_temp3[13:0] 				- b_temp3;//a[19:6]-b 
wire [14:0] minus4_res1 = a_temp3[14:1] 				- b_temp3;//a[20:7]-2*b
wire [14:0] minus4_res2 = (~minus4_res1[14]) ? ({minus4_res1[12:0],a_temp3[0]}- b_temp3) : 15'b0;//a[21:8]-3*b
always @(posedge clk) begin//x00 write 11，x01 write 10，01x write 01，11x write 00
	b_temp4 	<= b_temp3;
	y_temp4[9:1]<= {y_temp3[7:0],~minus4_res1[14]};//x00 write 11，x01 write 10，01x write 01，11x write 00
	if(~minus4_res1[14]) begin//a[21:8]>=2*b
		a_temp4[12:0] 	<= (~minus4_res2[14]) ? minus4_res2[13:0] : {minus4_res1[12:0],a_temp3[0]};//>= 3*b ?
		y_temp4[0] 		<= ~minus4_res2[14];
	end
	else begin //a[21:8]<2*b
		a_temp4[12:0] 	<= (~minus4_res0[14]) ? minus4_res0[13:0] : a_temp3[13:0];//>= b ?
		y_temp4[0] 		<= ~minus4_res0[14];
	end
end
wire [14:0] minus5_res0 = {a_temp4[11:0],2'b0} 		- b_temp4;//a[19:6]-b 
wire [14:0] minus5_res1 = {a_temp4[12:0],1'b0}		- b_temp4;//a[20:7]-2*b
wire [14:0] minus5_res2 = (~minus5_res1[14]) ? ({minus5_res1[12:0],1'b0}	- b_temp4) : 15'b0;//a[21:8]-3*b
always @(posedge clk) begin//x00 write 11，x01 write 10，01x write 01，11x write 00
	if(~minus5_res1[14]) begin//a[21:8]>=2*b
		y 		<= (~minus5_res2[14]) ? {(y_temp4+1'b1),1'b0} : {y_temp4,1'b1};
	end
	else begin //<2*b
		y 		<= {y_temp4,(~minus5_res0[14])};
	end
end
endmodule

module fifo_d(
	input				clk		,
	input				e		,
	output 	reg[9:0]	d	
);
reg	[2:0]		e_dly;
always @(posedge clk) e_dly <= {e_dly[1:0],e};//input e delay chain
always @(posedge e_dly[2]) d <= {d[8:0],e};
endmodule

module sin_tab(
	input				clk		,
	input	[11:0]		c		,
	output 	reg[11:0]	sin_c	
);
wire [10:0] sin_regfile [0:1023];
wire [10:0] c_neg = {1'b0,~c[9:0]} + 1'b1;
wire [9:0] c_temp = (~c[10]) ? c[9:0] : 
					(~c_neg[10]) ? c_neg[9:0] : 10'h3ff;
reg [1:0]sign_temp;//delay 2clk output sign
genvar i;
generate 
	for(i=0;i<7;i=i+1)begin:reg_fifo
		reg [11:0] sin_c_temp;
	end
	for(i=0;i<6;i=i+1)begin:trans
		always @(posedge clk)
			reg_fifo[i+1].sin_c_temp <= reg_fifo[i].sin_c_temp;
	end
endgenerate
always @(posedge clk) begin
	reg_fifo[0].sin_c_temp <= {c[11],(sin_regfile[c_temp])};
	
	sign_temp <= {reg_fifo[6].sin_c_temp[11],sign_temp[1]};
	sin_c <= {sign_temp[0],reg_fifo[6].sin_c_temp[10:0]};
end
assign sin_regfile[   0] = 11'h000;
assign sin_regfile[   1] = 11'h003;
assign sin_regfile[   2] = 11'h006;
assign sin_regfile[   3] = 11'h009;
assign sin_regfile[   4] = 11'h00d;
assign sin_regfile[   5] = 11'h010;
assign sin_regfile[   6] = 11'h013;
assign sin_regfile[   7] = 11'h016;
assign sin_regfile[   8] = 11'h019;
assign sin_regfile[   9] = 11'h01c;
assign sin_regfile[  10] = 11'h01f;
assign sin_regfile[  11] = 11'h023;
assign sin_regfile[  12] = 11'h026;
assign sin_regfile[  13] = 11'h029;
assign sin_regfile[  14] = 11'h02c;
assign sin_regfile[  15] = 11'h02f;
assign sin_regfile[  16] = 11'h032;
assign sin_regfile[  17] = 11'h035;
assign sin_regfile[  18] = 11'h039;
assign sin_regfile[  19] = 11'h03c;
assign sin_regfile[  20] = 11'h03f;
assign sin_regfile[  21] = 11'h042;
assign sin_regfile[  22] = 11'h045;
assign sin_regfile[  23] = 11'h048;
assign sin_regfile[  24] = 11'h04b;
assign sin_regfile[  25] = 11'h04f;
assign sin_regfile[  26] = 11'h052;
assign sin_regfile[  27] = 11'h055;
assign sin_regfile[  28] = 11'h058;
assign sin_regfile[  29] = 11'h05b;
assign sin_regfile[  30] = 11'h05e;
assign sin_regfile[  31] = 11'h061;
assign sin_regfile[  32] = 11'h064;
assign sin_regfile[  33] = 11'h068;
assign sin_regfile[  34] = 11'h06b;
assign sin_regfile[  35] = 11'h06e;
assign sin_regfile[  36] = 11'h071;
assign sin_regfile[  37] = 11'h074;
assign sin_regfile[  38] = 11'h077;
assign sin_regfile[  39] = 11'h07a;
assign sin_regfile[  40] = 11'h07e;
assign sin_regfile[  41] = 11'h081;
assign sin_regfile[  42] = 11'h084;
assign sin_regfile[  43] = 11'h087;
assign sin_regfile[  44] = 11'h08a;
assign sin_regfile[  45] = 11'h08d;
assign sin_regfile[  46] = 11'h090;
assign sin_regfile[  47] = 11'h094;
assign sin_regfile[  48] = 11'h097;
assign sin_regfile[  49] = 11'h09a;
assign sin_regfile[  50] = 11'h09d;
assign sin_regfile[  51] = 11'h0a0;
assign sin_regfile[  52] = 11'h0a3;
assign sin_regfile[  53] = 11'h0a6;
assign sin_regfile[  54] = 11'h0a9;
assign sin_regfile[  55] = 11'h0ad;
assign sin_regfile[  56] = 11'h0b0;
assign sin_regfile[  57] = 11'h0b3;
assign sin_regfile[  58] = 11'h0b6;
assign sin_regfile[  59] = 11'h0b9;
assign sin_regfile[  60] = 11'h0bc;
assign sin_regfile[  61] = 11'h0bf;
assign sin_regfile[  62] = 11'h0c2;
assign sin_regfile[  63] = 11'h0c6;
assign sin_regfile[  64] = 11'h0c9;
assign sin_regfile[  65] = 11'h0cc;
assign sin_regfile[  66] = 11'h0cf;
assign sin_regfile[  67] = 11'h0d2;
assign sin_regfile[  68] = 11'h0d5;
assign sin_regfile[  69] = 11'h0d8;
assign sin_regfile[  70] = 11'h0db;
assign sin_regfile[  71] = 11'h0df;
assign sin_regfile[  72] = 11'h0e2;
assign sin_regfile[  73] = 11'h0e5;
assign sin_regfile[  74] = 11'h0e8;
assign sin_regfile[  75] = 11'h0eb;
assign sin_regfile[  76] = 11'h0ee;
assign sin_regfile[  77] = 11'h0f1;
assign sin_regfile[  78] = 11'h0f4;
assign sin_regfile[  79] = 11'h0f8;
assign sin_regfile[  80] = 11'h0fb;
assign sin_regfile[  81] = 11'h0fe;
assign sin_regfile[  82] = 11'h101;
assign sin_regfile[  83] = 11'h104;
assign sin_regfile[  84] = 11'h107;
assign sin_regfile[  85] = 11'h10a;
assign sin_regfile[  86] = 11'h10d;
assign sin_regfile[  87] = 11'h111;
assign sin_regfile[  88] = 11'h114;
assign sin_regfile[  89] = 11'h117;
assign sin_regfile[  90] = 11'h11a;
assign sin_regfile[  91] = 11'h11d;
assign sin_regfile[  92] = 11'h120;
assign sin_regfile[  93] = 11'h123;
assign sin_regfile[  94] = 11'h126;
assign sin_regfile[  95] = 11'h129;
assign sin_regfile[  96] = 11'h12d;
assign sin_regfile[  97] = 11'h130;
assign sin_regfile[  98] = 11'h133;
assign sin_regfile[  99] = 11'h136;
assign sin_regfile[ 100] = 11'h139;
assign sin_regfile[ 101] = 11'h13c;
assign sin_regfile[ 102] = 11'h13f;
assign sin_regfile[ 103] = 11'h142;
assign sin_regfile[ 104] = 11'h145;
assign sin_regfile[ 105] = 11'h148;
assign sin_regfile[ 106] = 11'h14c;
assign sin_regfile[ 107] = 11'h14f;
assign sin_regfile[ 108] = 11'h152;
assign sin_regfile[ 109] = 11'h155;
assign sin_regfile[ 110] = 11'h158;
assign sin_regfile[ 111] = 11'h15b;
assign sin_regfile[ 112] = 11'h15e;
assign sin_regfile[ 113] = 11'h161;
assign sin_regfile[ 114] = 11'h164;
assign sin_regfile[ 115] = 11'h167;
assign sin_regfile[ 116] = 11'h16b;
assign sin_regfile[ 117] = 11'h16e;
assign sin_regfile[ 118] = 11'h171;
assign sin_regfile[ 119] = 11'h174;
assign sin_regfile[ 120] = 11'h177;
assign sin_regfile[ 121] = 11'h17a;
assign sin_regfile[ 122] = 11'h17d;
assign sin_regfile[ 123] = 11'h180;
assign sin_regfile[ 124] = 11'h183;
assign sin_regfile[ 125] = 11'h186;
assign sin_regfile[ 126] = 11'h189;
assign sin_regfile[ 127] = 11'h18c;
assign sin_regfile[ 128] = 11'h190;
assign sin_regfile[ 129] = 11'h193;
assign sin_regfile[ 130] = 11'h196;
assign sin_regfile[ 131] = 11'h199;
assign sin_regfile[ 132] = 11'h19c;
assign sin_regfile[ 133] = 11'h19f;
assign sin_regfile[ 134] = 11'h1a2;
assign sin_regfile[ 135] = 11'h1a5;
assign sin_regfile[ 136] = 11'h1a8;
assign sin_regfile[ 137] = 11'h1ab;
assign sin_regfile[ 138] = 11'h1ae;
assign sin_regfile[ 139] = 11'h1b1;
assign sin_regfile[ 140] = 11'h1b4;
assign sin_regfile[ 141] = 11'h1b8;
assign sin_regfile[ 142] = 11'h1bb;
assign sin_regfile[ 143] = 11'h1be;
assign sin_regfile[ 144] = 11'h1c1;
assign sin_regfile[ 145] = 11'h1c4;
assign sin_regfile[ 146] = 11'h1c7;
assign sin_regfile[ 147] = 11'h1ca;
assign sin_regfile[ 148] = 11'h1cd;
assign sin_regfile[ 149] = 11'h1d0;
assign sin_regfile[ 150] = 11'h1d3;
assign sin_regfile[ 151] = 11'h1d6;
assign sin_regfile[ 152] = 11'h1d9;
assign sin_regfile[ 153] = 11'h1dc;
assign sin_regfile[ 154] = 11'h1df;
assign sin_regfile[ 155] = 11'h1e2;
assign sin_regfile[ 156] = 11'h1e5;
assign sin_regfile[ 157] = 11'h1e8;
assign sin_regfile[ 158] = 11'h1ec;
assign sin_regfile[ 159] = 11'h1ef;
assign sin_regfile[ 160] = 11'h1f2;
assign sin_regfile[ 161] = 11'h1f5;
assign sin_regfile[ 162] = 11'h1f8;
assign sin_regfile[ 163] = 11'h1fb;
assign sin_regfile[ 164] = 11'h1fe;
assign sin_regfile[ 165] = 11'h201;
assign sin_regfile[ 166] = 11'h204;
assign sin_regfile[ 167] = 11'h207;
assign sin_regfile[ 168] = 11'h20a;
assign sin_regfile[ 169] = 11'h20d;
assign sin_regfile[ 170] = 11'h210;
assign sin_regfile[ 171] = 11'h213;
assign sin_regfile[ 172] = 11'h216;
assign sin_regfile[ 173] = 11'h219;
assign sin_regfile[ 174] = 11'h21c;
assign sin_regfile[ 175] = 11'h21f;
assign sin_regfile[ 176] = 11'h222;
assign sin_regfile[ 177] = 11'h225;
assign sin_regfile[ 178] = 11'h228;
assign sin_regfile[ 179] = 11'h22b;
assign sin_regfile[ 180] = 11'h22e;
assign sin_regfile[ 181] = 11'h231;
assign sin_regfile[ 182] = 11'h234;
assign sin_regfile[ 183] = 11'h237;
assign sin_regfile[ 184] = 11'h23a;
assign sin_regfile[ 185] = 11'h23d;
assign sin_regfile[ 186] = 11'h240;
assign sin_regfile[ 187] = 11'h243;
assign sin_regfile[ 188] = 11'h246;
assign sin_regfile[ 189] = 11'h249;
assign sin_regfile[ 190] = 11'h24c;
assign sin_regfile[ 191] = 11'h24f;
assign sin_regfile[ 192] = 11'h253;
assign sin_regfile[ 193] = 11'h256;
assign sin_regfile[ 194] = 11'h259;
assign sin_regfile[ 195] = 11'h25c;
assign sin_regfile[ 196] = 11'h25f;
assign sin_regfile[ 197] = 11'h262;
assign sin_regfile[ 198] = 11'h265;
assign sin_regfile[ 199] = 11'h268;
assign sin_regfile[ 200] = 11'h26b;
assign sin_regfile[ 201] = 11'h26e;
assign sin_regfile[ 202] = 11'h270;
assign sin_regfile[ 203] = 11'h273;
assign sin_regfile[ 204] = 11'h276;
assign sin_regfile[ 205] = 11'h279;
assign sin_regfile[ 206] = 11'h27c;
assign sin_regfile[ 207] = 11'h27f;
assign sin_regfile[ 208] = 11'h282;
assign sin_regfile[ 209] = 11'h285;
assign sin_regfile[ 210] = 11'h288;
assign sin_regfile[ 211] = 11'h28b;
assign sin_regfile[ 212] = 11'h28e;
assign sin_regfile[ 213] = 11'h291;
assign sin_regfile[ 214] = 11'h294;
assign sin_regfile[ 215] = 11'h297;
assign sin_regfile[ 216] = 11'h29a;
assign sin_regfile[ 217] = 11'h29d;
assign sin_regfile[ 218] = 11'h2a0;
assign sin_regfile[ 219] = 11'h2a3;
assign sin_regfile[ 220] = 11'h2a6;
assign sin_regfile[ 221] = 11'h2a9;
assign sin_regfile[ 222] = 11'h2ac;
assign sin_regfile[ 223] = 11'h2af;
assign sin_regfile[ 224] = 11'h2b2;
assign sin_regfile[ 225] = 11'h2b5;
assign sin_regfile[ 226] = 11'h2b8;
assign sin_regfile[ 227] = 11'h2bb;
assign sin_regfile[ 228] = 11'h2be;
assign sin_regfile[ 229] = 11'h2c1;
assign sin_regfile[ 230] = 11'h2c4;
assign sin_regfile[ 231] = 11'h2c7;
assign sin_regfile[ 232] = 11'h2ca;
assign sin_regfile[ 233] = 11'h2cd;
assign sin_regfile[ 234] = 11'h2cf;
assign sin_regfile[ 235] = 11'h2d2;
assign sin_regfile[ 236] = 11'h2d5;
assign sin_regfile[ 237] = 11'h2d8;
assign sin_regfile[ 238] = 11'h2db;
assign sin_regfile[ 239] = 11'h2de;
assign sin_regfile[ 240] = 11'h2e1;
assign sin_regfile[ 241] = 11'h2e4;
assign sin_regfile[ 242] = 11'h2e7;
assign sin_regfile[ 243] = 11'h2ea;
assign sin_regfile[ 244] = 11'h2ed;
assign sin_regfile[ 245] = 11'h2f0;
assign sin_regfile[ 246] = 11'h2f3;
assign sin_regfile[ 247] = 11'h2f6;
assign sin_regfile[ 248] = 11'h2f8;
assign sin_regfile[ 249] = 11'h2fb;
assign sin_regfile[ 250] = 11'h2fe;
assign sin_regfile[ 251] = 11'h301;
assign sin_regfile[ 252] = 11'h304;
assign sin_regfile[ 253] = 11'h307;
assign sin_regfile[ 254] = 11'h30a;
assign sin_regfile[ 255] = 11'h30d;
assign sin_regfile[ 256] = 11'h310;
assign sin_regfile[ 257] = 11'h313;
assign sin_regfile[ 258] = 11'h316;
assign sin_regfile[ 259] = 11'h318;
assign sin_regfile[ 260] = 11'h31b;
assign sin_regfile[ 261] = 11'h31e;
assign sin_regfile[ 262] = 11'h321;
assign sin_regfile[ 263] = 11'h324;
assign sin_regfile[ 264] = 11'h327;
assign sin_regfile[ 265] = 11'h32a;
assign sin_regfile[ 266] = 11'h32d;
assign sin_regfile[ 267] = 11'h330;
assign sin_regfile[ 268] = 11'h332;
assign sin_regfile[ 269] = 11'h335;
assign sin_regfile[ 270] = 11'h338;
assign sin_regfile[ 271] = 11'h33b;
assign sin_regfile[ 272] = 11'h33e;
assign sin_regfile[ 273] = 11'h341;
assign sin_regfile[ 274] = 11'h344;
assign sin_regfile[ 275] = 11'h347;
assign sin_regfile[ 276] = 11'h349;
assign sin_regfile[ 277] = 11'h34c;
assign sin_regfile[ 278] = 11'h34f;
assign sin_regfile[ 279] = 11'h352;
assign sin_regfile[ 280] = 11'h355;
assign sin_regfile[ 281] = 11'h358;
assign sin_regfile[ 282] = 11'h35b;
assign sin_regfile[ 283] = 11'h35d;
assign sin_regfile[ 284] = 11'h360;
assign sin_regfile[ 285] = 11'h363;
assign sin_regfile[ 286] = 11'h366;
assign sin_regfile[ 287] = 11'h369;
assign sin_regfile[ 288] = 11'h36c;
assign sin_regfile[ 289] = 11'h36e;
assign sin_regfile[ 290] = 11'h371;
assign sin_regfile[ 291] = 11'h374;
assign sin_regfile[ 292] = 11'h377;
assign sin_regfile[ 293] = 11'h37a;
assign sin_regfile[ 294] = 11'h37d;
assign sin_regfile[ 295] = 11'h37f;
assign sin_regfile[ 296] = 11'h382;
assign sin_regfile[ 297] = 11'h385;
assign sin_regfile[ 298] = 11'h388;
assign sin_regfile[ 299] = 11'h38b;
assign sin_regfile[ 300] = 11'h38e;
assign sin_regfile[ 301] = 11'h390;
assign sin_regfile[ 302] = 11'h393;
assign sin_regfile[ 303] = 11'h396;
assign sin_regfile[ 304] = 11'h399;
assign sin_regfile[ 305] = 11'h39c;
assign sin_regfile[ 306] = 11'h39e;
assign sin_regfile[ 307] = 11'h3a1;
assign sin_regfile[ 308] = 11'h3a4;
assign sin_regfile[ 309] = 11'h3a7;
assign sin_regfile[ 310] = 11'h3aa;
assign sin_regfile[ 311] = 11'h3ac;
assign sin_regfile[ 312] = 11'h3af;
assign sin_regfile[ 313] = 11'h3b2;
assign sin_regfile[ 314] = 11'h3b5;
assign sin_regfile[ 315] = 11'h3b8;
assign sin_regfile[ 316] = 11'h3ba;
assign sin_regfile[ 317] = 11'h3bd;
assign sin_regfile[ 318] = 11'h3c0;
assign sin_regfile[ 319] = 11'h3c3;
assign sin_regfile[ 320] = 11'h3c5;
assign sin_regfile[ 321] = 11'h3c8;
assign sin_regfile[ 322] = 11'h3cb;
assign sin_regfile[ 323] = 11'h3ce;
assign sin_regfile[ 324] = 11'h3d0;
assign sin_regfile[ 325] = 11'h3d3;
assign sin_regfile[ 326] = 11'h3d6;
assign sin_regfile[ 327] = 11'h3d9;
assign sin_regfile[ 328] = 11'h3dc;
assign sin_regfile[ 329] = 11'h3de;
assign sin_regfile[ 330] = 11'h3e1;
assign sin_regfile[ 331] = 11'h3e4;
assign sin_regfile[ 332] = 11'h3e7;
assign sin_regfile[ 333] = 11'h3e9;
assign sin_regfile[ 334] = 11'h3ec;
assign sin_regfile[ 335] = 11'h3ef;
assign sin_regfile[ 336] = 11'h3f1;
assign sin_regfile[ 337] = 11'h3f4;
assign sin_regfile[ 338] = 11'h3f7;
assign sin_regfile[ 339] = 11'h3fa;
assign sin_regfile[ 340] = 11'h3fc;
assign sin_regfile[ 341] = 11'h3ff;
assign sin_regfile[ 342] = 11'h402;
assign sin_regfile[ 343] = 11'h405;
assign sin_regfile[ 344] = 11'h407;
assign sin_regfile[ 345] = 11'h40a;
assign sin_regfile[ 346] = 11'h40d;
assign sin_regfile[ 347] = 11'h40f;
assign sin_regfile[ 348] = 11'h412;
assign sin_regfile[ 349] = 11'h415;
assign sin_regfile[ 350] = 11'h417;
assign sin_regfile[ 351] = 11'h41a;
assign sin_regfile[ 352] = 11'h41d;
assign sin_regfile[ 353] = 11'h420;
assign sin_regfile[ 354] = 11'h422;
assign sin_regfile[ 355] = 11'h425;
assign sin_regfile[ 356] = 11'h428;
assign sin_regfile[ 357] = 11'h42a;
assign sin_regfile[ 358] = 11'h42d;
assign sin_regfile[ 359] = 11'h430;
assign sin_regfile[ 360] = 11'h432;
assign sin_regfile[ 361] = 11'h435;
assign sin_regfile[ 362] = 11'h438;
assign sin_regfile[ 363] = 11'h43a;
assign sin_regfile[ 364] = 11'h43d;
assign sin_regfile[ 365] = 11'h440;
assign sin_regfile[ 366] = 11'h442;
assign sin_regfile[ 367] = 11'h445;
assign sin_regfile[ 368] = 11'h448;
assign sin_regfile[ 369] = 11'h44a;
assign sin_regfile[ 370] = 11'h44d;
assign sin_regfile[ 371] = 11'h450;
assign sin_regfile[ 372] = 11'h452;
assign sin_regfile[ 373] = 11'h455;
assign sin_regfile[ 374] = 11'h458;
assign sin_regfile[ 375] = 11'h45a;
assign sin_regfile[ 376] = 11'h45d;
assign sin_regfile[ 377] = 11'h45f;
assign sin_regfile[ 378] = 11'h462;
assign sin_regfile[ 379] = 11'h465;
assign sin_regfile[ 380] = 11'h467;
assign sin_regfile[ 381] = 11'h46a;
assign sin_regfile[ 382] = 11'h46d;
assign sin_regfile[ 383] = 11'h46f;
assign sin_regfile[ 384] = 11'h472;
assign sin_regfile[ 385] = 11'h474;
assign sin_regfile[ 386] = 11'h477;
assign sin_regfile[ 387] = 11'h47a;
assign sin_regfile[ 388] = 11'h47c;
assign sin_regfile[ 389] = 11'h47f;
assign sin_regfile[ 390] = 11'h481;
assign sin_regfile[ 391] = 11'h484;
assign sin_regfile[ 392] = 11'h487;
assign sin_regfile[ 393] = 11'h489;
assign sin_regfile[ 394] = 11'h48c;
assign sin_regfile[ 395] = 11'h48e;
assign sin_regfile[ 396] = 11'h491;
assign sin_regfile[ 397] = 11'h494;
assign sin_regfile[ 398] = 11'h496;
assign sin_regfile[ 399] = 11'h499;
assign sin_regfile[ 400] = 11'h49b;
assign sin_regfile[ 401] = 11'h49e;
assign sin_regfile[ 402] = 11'h4a0;
assign sin_regfile[ 403] = 11'h4a3;
assign sin_regfile[ 404] = 11'h4a6;
assign sin_regfile[ 405] = 11'h4a8;
assign sin_regfile[ 406] = 11'h4ab;
assign sin_regfile[ 407] = 11'h4ad;
assign sin_regfile[ 408] = 11'h4b0;
assign sin_regfile[ 409] = 11'h4b2;
assign sin_regfile[ 410] = 11'h4b5;
assign sin_regfile[ 411] = 11'h4b7;
assign sin_regfile[ 412] = 11'h4ba;
assign sin_regfile[ 413] = 11'h4bc;
assign sin_regfile[ 414] = 11'h4bf;
assign sin_regfile[ 415] = 11'h4c1;
assign sin_regfile[ 416] = 11'h4c4;
assign sin_regfile[ 417] = 11'h4c7;
assign sin_regfile[ 418] = 11'h4c9;
assign sin_regfile[ 419] = 11'h4cc;
assign sin_regfile[ 420] = 11'h4ce;
assign sin_regfile[ 421] = 11'h4d1;
assign sin_regfile[ 422] = 11'h4d3;
assign sin_regfile[ 423] = 11'h4d6;
assign sin_regfile[ 424] = 11'h4d8;
assign sin_regfile[ 425] = 11'h4db;
assign sin_regfile[ 426] = 11'h4dd;
assign sin_regfile[ 427] = 11'h4e0;
assign sin_regfile[ 428] = 11'h4e2;
assign sin_regfile[ 429] = 11'h4e5;
assign sin_regfile[ 430] = 11'h4e7;
assign sin_regfile[ 431] = 11'h4ea;
assign sin_regfile[ 432] = 11'h4ec;
assign sin_regfile[ 433] = 11'h4ee;
assign sin_regfile[ 434] = 11'h4f1;
assign sin_regfile[ 435] = 11'h4f3;
assign sin_regfile[ 436] = 11'h4f6;
assign sin_regfile[ 437] = 11'h4f8;
assign sin_regfile[ 438] = 11'h4fb;
assign sin_regfile[ 439] = 11'h4fd;
assign sin_regfile[ 440] = 11'h500;
assign sin_regfile[ 441] = 11'h502;
assign sin_regfile[ 442] = 11'h505;
assign sin_regfile[ 443] = 11'h507;
assign sin_regfile[ 444] = 11'h509;
assign sin_regfile[ 445] = 11'h50c;
assign sin_regfile[ 446] = 11'h50e;
assign sin_regfile[ 447] = 11'h511;
assign sin_regfile[ 448] = 11'h513;
assign sin_regfile[ 449] = 11'h516;
assign sin_regfile[ 450] = 11'h518;
assign sin_regfile[ 451] = 11'h51b;
assign sin_regfile[ 452] = 11'h51d;
assign sin_regfile[ 453] = 11'h51f;
assign sin_regfile[ 454] = 11'h522;
assign sin_regfile[ 455] = 11'h524;
assign sin_regfile[ 456] = 11'h527;
assign sin_regfile[ 457] = 11'h529;
assign sin_regfile[ 458] = 11'h52b;
assign sin_regfile[ 459] = 11'h52e;
assign sin_regfile[ 460] = 11'h530;
assign sin_regfile[ 461] = 11'h533;
assign sin_regfile[ 462] = 11'h535;
assign sin_regfile[ 463] = 11'h537;
assign sin_regfile[ 464] = 11'h53a;
assign sin_regfile[ 465] = 11'h53c;
assign sin_regfile[ 466] = 11'h53e;
assign sin_regfile[ 467] = 11'h541;
assign sin_regfile[ 468] = 11'h543;
assign sin_regfile[ 469] = 11'h546;
assign sin_regfile[ 470] = 11'h548;
assign sin_regfile[ 471] = 11'h54a;
assign sin_regfile[ 472] = 11'h54d;
assign sin_regfile[ 473] = 11'h54f;
assign sin_regfile[ 474] = 11'h551;
assign sin_regfile[ 475] = 11'h554;
assign sin_regfile[ 476] = 11'h556;
assign sin_regfile[ 477] = 11'h558;
assign sin_regfile[ 478] = 11'h55b;
assign sin_regfile[ 479] = 11'h55d;
assign sin_regfile[ 480] = 11'h55f;
assign sin_regfile[ 481] = 11'h562;
assign sin_regfile[ 482] = 11'h564;
assign sin_regfile[ 483] = 11'h566;
assign sin_regfile[ 484] = 11'h569;
assign sin_regfile[ 485] = 11'h56b;
assign sin_regfile[ 486] = 11'h56d;
assign sin_regfile[ 487] = 11'h570;
assign sin_regfile[ 488] = 11'h572;
assign sin_regfile[ 489] = 11'h574;
assign sin_regfile[ 490] = 11'h576;
assign sin_regfile[ 491] = 11'h579;
assign sin_regfile[ 492] = 11'h57b;
assign sin_regfile[ 493] = 11'h57d;
assign sin_regfile[ 494] = 11'h580;
assign sin_regfile[ 495] = 11'h582;
assign sin_regfile[ 496] = 11'h584;
assign sin_regfile[ 497] = 11'h586;
assign sin_regfile[ 498] = 11'h589;
assign sin_regfile[ 499] = 11'h58b;
assign sin_regfile[ 500] = 11'h58d;
assign sin_regfile[ 501] = 11'h590;
assign sin_regfile[ 502] = 11'h592;
assign sin_regfile[ 503] = 11'h594;
assign sin_regfile[ 504] = 11'h596;
assign sin_regfile[ 505] = 11'h599;
assign sin_regfile[ 506] = 11'h59b;
assign sin_regfile[ 507] = 11'h59d;
assign sin_regfile[ 508] = 11'h59f;
assign sin_regfile[ 509] = 11'h5a1;
assign sin_regfile[ 510] = 11'h5a4;
assign sin_regfile[ 511] = 11'h5a6;
assign sin_regfile[ 512] = 11'h5a8;
assign sin_regfile[ 513] = 11'h5aa;
assign sin_regfile[ 514] = 11'h5ad;
assign sin_regfile[ 515] = 11'h5af;
assign sin_regfile[ 516] = 11'h5b1;
assign sin_regfile[ 517] = 11'h5b3;
assign sin_regfile[ 518] = 11'h5b5;
assign sin_regfile[ 519] = 11'h5b8;
assign sin_regfile[ 520] = 11'h5ba;
assign sin_regfile[ 521] = 11'h5bc;
assign sin_regfile[ 522] = 11'h5be;
assign sin_regfile[ 523] = 11'h5c0;
assign sin_regfile[ 524] = 11'h5c3;
assign sin_regfile[ 525] = 11'h5c5;
assign sin_regfile[ 526] = 11'h5c7;
assign sin_regfile[ 527] = 11'h5c9;
assign sin_regfile[ 528] = 11'h5cb;
assign sin_regfile[ 529] = 11'h5cd;
assign sin_regfile[ 530] = 11'h5d0;
assign sin_regfile[ 531] = 11'h5d2;
assign sin_regfile[ 532] = 11'h5d4;
assign sin_regfile[ 533] = 11'h5d6;
assign sin_regfile[ 534] = 11'h5d8;
assign sin_regfile[ 535] = 11'h5da;
assign sin_regfile[ 536] = 11'h5dc;
assign sin_regfile[ 537] = 11'h5df;
assign sin_regfile[ 538] = 11'h5e1;
assign sin_regfile[ 539] = 11'h5e3;
assign sin_regfile[ 540] = 11'h5e5;
assign sin_regfile[ 541] = 11'h5e7;
assign sin_regfile[ 542] = 11'h5e9;
assign sin_regfile[ 543] = 11'h5eb;
assign sin_regfile[ 544] = 11'h5ed;
assign sin_regfile[ 545] = 11'h5f0;
assign sin_regfile[ 546] = 11'h5f2;
assign sin_regfile[ 547] = 11'h5f4;
assign sin_regfile[ 548] = 11'h5f6;
assign sin_regfile[ 549] = 11'h5f8;
assign sin_regfile[ 550] = 11'h5fa;
assign sin_regfile[ 551] = 11'h5fc;
assign sin_regfile[ 552] = 11'h5fe;
assign sin_regfile[ 553] = 11'h600;
assign sin_regfile[ 554] = 11'h602;
assign sin_regfile[ 555] = 11'h604;
assign sin_regfile[ 556] = 11'h607;
assign sin_regfile[ 557] = 11'h609;
assign sin_regfile[ 558] = 11'h60b;
assign sin_regfile[ 559] = 11'h60d;
assign sin_regfile[ 560] = 11'h60f;
assign sin_regfile[ 561] = 11'h611;
assign sin_regfile[ 562] = 11'h613;
assign sin_regfile[ 563] = 11'h615;
assign sin_regfile[ 564] = 11'h617;
assign sin_regfile[ 565] = 11'h619;
assign sin_regfile[ 566] = 11'h61b;
assign sin_regfile[ 567] = 11'h61d;
assign sin_regfile[ 568] = 11'h61f;
assign sin_regfile[ 569] = 11'h621;
assign sin_regfile[ 570] = 11'h623;
assign sin_regfile[ 571] = 11'h625;
assign sin_regfile[ 572] = 11'h627;
assign sin_regfile[ 573] = 11'h629;
assign sin_regfile[ 574] = 11'h62b;
assign sin_regfile[ 575] = 11'h62d;
assign sin_regfile[ 576] = 11'h62f;
assign sin_regfile[ 577] = 11'h631;
assign sin_regfile[ 578] = 11'h633;
assign sin_regfile[ 579] = 11'h635;
assign sin_regfile[ 580] = 11'h637;
assign sin_regfile[ 581] = 11'h639;
assign sin_regfile[ 582] = 11'h63b;
assign sin_regfile[ 583] = 11'h63d;
assign sin_regfile[ 584] = 11'h63f;
assign sin_regfile[ 585] = 11'h641;
assign sin_regfile[ 586] = 11'h643;
assign sin_regfile[ 587] = 11'h645;
assign sin_regfile[ 588] = 11'h647;
assign sin_regfile[ 589] = 11'h649;
assign sin_regfile[ 590] = 11'h64b;
assign sin_regfile[ 591] = 11'h64d;
assign sin_regfile[ 592] = 11'h64f;
assign sin_regfile[ 593] = 11'h650;
assign sin_regfile[ 594] = 11'h652;
assign sin_regfile[ 595] = 11'h654;
assign sin_regfile[ 596] = 11'h656;
assign sin_regfile[ 597] = 11'h658;
assign sin_regfile[ 598] = 11'h65a;
assign sin_regfile[ 599] = 11'h65c;
assign sin_regfile[ 600] = 11'h65e;
assign sin_regfile[ 601] = 11'h660;
assign sin_regfile[ 602] = 11'h662;
assign sin_regfile[ 603] = 11'h664;
assign sin_regfile[ 604] = 11'h665;
assign sin_regfile[ 605] = 11'h667;
assign sin_regfile[ 606] = 11'h669;
assign sin_regfile[ 607] = 11'h66b;
assign sin_regfile[ 608] = 11'h66d;
assign sin_regfile[ 609] = 11'h66f;
assign sin_regfile[ 610] = 11'h671;
assign sin_regfile[ 611] = 11'h673;
assign sin_regfile[ 612] = 11'h674;
assign sin_regfile[ 613] = 11'h676;
assign sin_regfile[ 614] = 11'h678;
assign sin_regfile[ 615] = 11'h67a;
assign sin_regfile[ 616] = 11'h67c;
assign sin_regfile[ 617] = 11'h67e;
assign sin_regfile[ 618] = 11'h67f;
assign sin_regfile[ 619] = 11'h681;
assign sin_regfile[ 620] = 11'h683;
assign sin_regfile[ 621] = 11'h685;
assign sin_regfile[ 622] = 11'h687;
assign sin_regfile[ 623] = 11'h689;
assign sin_regfile[ 624] = 11'h68a;
assign sin_regfile[ 625] = 11'h68c;
assign sin_regfile[ 626] = 11'h68e;
assign sin_regfile[ 627] = 11'h690;
assign sin_regfile[ 628] = 11'h692;
assign sin_regfile[ 629] = 11'h693;
assign sin_regfile[ 630] = 11'h695;
assign sin_regfile[ 631] = 11'h697;
assign sin_regfile[ 632] = 11'h699;
assign sin_regfile[ 633] = 11'h69b;
assign sin_regfile[ 634] = 11'h69c;
assign sin_regfile[ 635] = 11'h69e;
assign sin_regfile[ 636] = 11'h6a0;
assign sin_regfile[ 637] = 11'h6a2;
assign sin_regfile[ 638] = 11'h6a3;
assign sin_regfile[ 639] = 11'h6a5;
assign sin_regfile[ 640] = 11'h6a7;
assign sin_regfile[ 641] = 11'h6a9;
assign sin_regfile[ 642] = 11'h6aa;
assign sin_regfile[ 643] = 11'h6ac;
assign sin_regfile[ 644] = 11'h6ae;
assign sin_regfile[ 645] = 11'h6b0;
assign sin_regfile[ 646] = 11'h6b1;
assign sin_regfile[ 647] = 11'h6b3;
assign sin_regfile[ 648] = 11'h6b5;
assign sin_regfile[ 649] = 11'h6b6;
assign sin_regfile[ 650] = 11'h6b8;
assign sin_regfile[ 651] = 11'h6ba;
assign sin_regfile[ 652] = 11'h6bc;
assign sin_regfile[ 653] = 11'h6bd;
assign sin_regfile[ 654] = 11'h6bf;
assign sin_regfile[ 655] = 11'h6c1;
assign sin_regfile[ 656] = 11'h6c2;
assign sin_regfile[ 657] = 11'h6c4;
assign sin_regfile[ 658] = 11'h6c6;
assign sin_regfile[ 659] = 11'h6c7;
assign sin_regfile[ 660] = 11'h6c9;
assign sin_regfile[ 661] = 11'h6cb;
assign sin_regfile[ 662] = 11'h6cc;
assign sin_regfile[ 663] = 11'h6ce;
assign sin_regfile[ 664] = 11'h6d0;
assign sin_regfile[ 665] = 11'h6d1;
assign sin_regfile[ 666] = 11'h6d3;
assign sin_regfile[ 667] = 11'h6d5;
assign sin_regfile[ 668] = 11'h6d6;
assign sin_regfile[ 669] = 11'h6d8;
assign sin_regfile[ 670] = 11'h6d9;
assign sin_regfile[ 671] = 11'h6db;
assign sin_regfile[ 672] = 11'h6dd;
assign sin_regfile[ 673] = 11'h6de;
assign sin_regfile[ 674] = 11'h6e0;
assign sin_regfile[ 675] = 11'h6e1;
assign sin_regfile[ 676] = 11'h6e3;
assign sin_regfile[ 677] = 11'h6e5;
assign sin_regfile[ 678] = 11'h6e6;
assign sin_regfile[ 679] = 11'h6e8;
assign sin_regfile[ 680] = 11'h6e9;
assign sin_regfile[ 681] = 11'h6eb;
assign sin_regfile[ 682] = 11'h6ed;
assign sin_regfile[ 683] = 11'h6ee;
assign sin_regfile[ 684] = 11'h6f0;
assign sin_regfile[ 685] = 11'h6f1;
assign sin_regfile[ 686] = 11'h6f3;
assign sin_regfile[ 687] = 11'h6f4;
assign sin_regfile[ 688] = 11'h6f6;
assign sin_regfile[ 689] = 11'h6f7;
assign sin_regfile[ 690] = 11'h6f9;
assign sin_regfile[ 691] = 11'h6fb;
assign sin_regfile[ 692] = 11'h6fc;
assign sin_regfile[ 693] = 11'h6fe;
assign sin_regfile[ 694] = 11'h6ff;
assign sin_regfile[ 695] = 11'h701;
assign sin_regfile[ 696] = 11'h702;
assign sin_regfile[ 697] = 11'h704;
assign sin_regfile[ 698] = 11'h705;
assign sin_regfile[ 699] = 11'h707;
assign sin_regfile[ 700] = 11'h708;
assign sin_regfile[ 701] = 11'h70a;
assign sin_regfile[ 702] = 11'h70b;
assign sin_regfile[ 703] = 11'h70d;
assign sin_regfile[ 704] = 11'h70e;
assign sin_regfile[ 705] = 11'h710;
assign sin_regfile[ 706] = 11'h711;
assign sin_regfile[ 707] = 11'h713;
assign sin_regfile[ 708] = 11'h714;
assign sin_regfile[ 709] = 11'h716;
assign sin_regfile[ 710] = 11'h717;
assign sin_regfile[ 711] = 11'h718;
assign sin_regfile[ 712] = 11'h71a;
assign sin_regfile[ 713] = 11'h71b;
assign sin_regfile[ 714] = 11'h71d;
assign sin_regfile[ 715] = 11'h71e;
assign sin_regfile[ 716] = 11'h720;
assign sin_regfile[ 717] = 11'h721;
assign sin_regfile[ 718] = 11'h722;
assign sin_regfile[ 719] = 11'h724;
assign sin_regfile[ 720] = 11'h725;
assign sin_regfile[ 721] = 11'h727;
assign sin_regfile[ 722] = 11'h728;
assign sin_regfile[ 723] = 11'h72a;
assign sin_regfile[ 724] = 11'h72b;
assign sin_regfile[ 725] = 11'h72c;
assign sin_regfile[ 726] = 11'h72e;
assign sin_regfile[ 727] = 11'h72f;
assign sin_regfile[ 728] = 11'h730;
assign sin_regfile[ 729] = 11'h732;
assign sin_regfile[ 730] = 11'h733;
assign sin_regfile[ 731] = 11'h735;
assign sin_regfile[ 732] = 11'h736;
assign sin_regfile[ 733] = 11'h737;
assign sin_regfile[ 734] = 11'h739;
assign sin_regfile[ 735] = 11'h73a;
assign sin_regfile[ 736] = 11'h73b;
assign sin_regfile[ 737] = 11'h73d;
assign sin_regfile[ 738] = 11'h73e;
assign sin_regfile[ 739] = 11'h73f;
assign sin_regfile[ 740] = 11'h741;
assign sin_regfile[ 741] = 11'h742;
assign sin_regfile[ 742] = 11'h743;
assign sin_regfile[ 743] = 11'h745;
assign sin_regfile[ 744] = 11'h746;
assign sin_regfile[ 745] = 11'h747;
assign sin_regfile[ 746] = 11'h749;
assign sin_regfile[ 747] = 11'h74a;
assign sin_regfile[ 748] = 11'h74b;
assign sin_regfile[ 749] = 11'h74c;
assign sin_regfile[ 750] = 11'h74e;
assign sin_regfile[ 751] = 11'h74f;
assign sin_regfile[ 752] = 11'h750;
assign sin_regfile[ 753] = 11'h752;
assign sin_regfile[ 754] = 11'h753;
assign sin_regfile[ 755] = 11'h754;
assign sin_regfile[ 756] = 11'h755;
assign sin_regfile[ 757] = 11'h757;
assign sin_regfile[ 758] = 11'h758;
assign sin_regfile[ 759] = 11'h759;
assign sin_regfile[ 760] = 11'h75a;
assign sin_regfile[ 761] = 11'h75c;
assign sin_regfile[ 762] = 11'h75d;
assign sin_regfile[ 763] = 11'h75e;
assign sin_regfile[ 764] = 11'h75f;
assign sin_regfile[ 765] = 11'h760;
assign sin_regfile[ 766] = 11'h762;
assign sin_regfile[ 767] = 11'h763;
assign sin_regfile[ 768] = 11'h764;
assign sin_regfile[ 769] = 11'h765;
assign sin_regfile[ 770] = 11'h767;
assign sin_regfile[ 771] = 11'h768;
assign sin_regfile[ 772] = 11'h769;
assign sin_regfile[ 773] = 11'h76a;
assign sin_regfile[ 774] = 11'h76b;
assign sin_regfile[ 775] = 11'h76c;
assign sin_regfile[ 776] = 11'h76e;
assign sin_regfile[ 777] = 11'h76f;
assign sin_regfile[ 778] = 11'h770;
assign sin_regfile[ 779] = 11'h771;
assign sin_regfile[ 780] = 11'h772;
assign sin_regfile[ 781] = 11'h773;
assign sin_regfile[ 782] = 11'h774;
assign sin_regfile[ 783] = 11'h776;
assign sin_regfile[ 784] = 11'h777;
assign sin_regfile[ 785] = 11'h778;
assign sin_regfile[ 786] = 11'h779;
assign sin_regfile[ 787] = 11'h77a;
assign sin_regfile[ 788] = 11'h77b;
assign sin_regfile[ 789] = 11'h77c;
assign sin_regfile[ 790] = 11'h77d;
assign sin_regfile[ 791] = 11'h77f;
assign sin_regfile[ 792] = 11'h780;
assign sin_regfile[ 793] = 11'h781;
assign sin_regfile[ 794] = 11'h782;
assign sin_regfile[ 795] = 11'h783;
assign sin_regfile[ 796] = 11'h784;
assign sin_regfile[ 797] = 11'h785;
assign sin_regfile[ 798] = 11'h786;
assign sin_regfile[ 799] = 11'h787;
assign sin_regfile[ 800] = 11'h788;
assign sin_regfile[ 801] = 11'h789;
assign sin_regfile[ 802] = 11'h78a;
assign sin_regfile[ 803] = 11'h78b;
assign sin_regfile[ 804] = 11'h78c;
assign sin_regfile[ 805] = 11'h78e;
assign sin_regfile[ 806] = 11'h78f;
assign sin_regfile[ 807] = 11'h790;
assign sin_regfile[ 808] = 11'h791;
assign sin_regfile[ 809] = 11'h792;
assign sin_regfile[ 810] = 11'h793;
assign sin_regfile[ 811] = 11'h794;
assign sin_regfile[ 812] = 11'h795;
assign sin_regfile[ 813] = 11'h796;
assign sin_regfile[ 814] = 11'h797;
assign sin_regfile[ 815] = 11'h798;
assign sin_regfile[ 816] = 11'h799;
assign sin_regfile[ 817] = 11'h79a;
assign sin_regfile[ 818] = 11'h79b;
assign sin_regfile[ 819] = 11'h79c;
assign sin_regfile[ 820] = 11'h79d;
assign sin_regfile[ 821] = 11'h79e;
assign sin_regfile[ 822] = 11'h79e;
assign sin_regfile[ 823] = 11'h79f;
assign sin_regfile[ 824] = 11'h7a0;
assign sin_regfile[ 825] = 11'h7a1;
assign sin_regfile[ 826] = 11'h7a2;
assign sin_regfile[ 827] = 11'h7a3;
assign sin_regfile[ 828] = 11'h7a4;
assign sin_regfile[ 829] = 11'h7a5;
assign sin_regfile[ 830] = 11'h7a6;
assign sin_regfile[ 831] = 11'h7a7;
assign sin_regfile[ 832] = 11'h7a8;
assign sin_regfile[ 833] = 11'h7a9;
assign sin_regfile[ 834] = 11'h7aa;
assign sin_regfile[ 835] = 11'h7ab;
assign sin_regfile[ 836] = 11'h7ab;
assign sin_regfile[ 837] = 11'h7ac;
assign sin_regfile[ 838] = 11'h7ad;
assign sin_regfile[ 839] = 11'h7ae;
assign sin_regfile[ 840] = 11'h7af;
assign sin_regfile[ 841] = 11'h7b0;
assign sin_regfile[ 842] = 11'h7b1;
assign sin_regfile[ 843] = 11'h7b2;
assign sin_regfile[ 844] = 11'h7b2;
assign sin_regfile[ 845] = 11'h7b3;
assign sin_regfile[ 846] = 11'h7b4;
assign sin_regfile[ 847] = 11'h7b5;
assign sin_regfile[ 848] = 11'h7b6;
assign sin_regfile[ 849] = 11'h7b7;
assign sin_regfile[ 850] = 11'h7b7;
assign sin_regfile[ 851] = 11'h7b8;
assign sin_regfile[ 852] = 11'h7b9;
assign sin_regfile[ 853] = 11'h7ba;
assign sin_regfile[ 854] = 11'h7bb;
assign sin_regfile[ 855] = 11'h7bc;
assign sin_regfile[ 856] = 11'h7bc;
assign sin_regfile[ 857] = 11'h7bd;
assign sin_regfile[ 858] = 11'h7be;
assign sin_regfile[ 859] = 11'h7bf;
assign sin_regfile[ 860] = 11'h7c0;
assign sin_regfile[ 861] = 11'h7c0;
assign sin_regfile[ 862] = 11'h7c1;
assign sin_regfile[ 863] = 11'h7c2;
assign sin_regfile[ 864] = 11'h7c3;
assign sin_regfile[ 865] = 11'h7c3;
assign sin_regfile[ 866] = 11'h7c4;
assign sin_regfile[ 867] = 11'h7c5;
assign sin_regfile[ 868] = 11'h7c6;
assign sin_regfile[ 869] = 11'h7c6;
assign sin_regfile[ 870] = 11'h7c7;
assign sin_regfile[ 871] = 11'h7c8;
assign sin_regfile[ 872] = 11'h7c9;
assign sin_regfile[ 873] = 11'h7c9;
assign sin_regfile[ 874] = 11'h7ca;
assign sin_regfile[ 875] = 11'h7cb;
assign sin_regfile[ 876] = 11'h7cb;
assign sin_regfile[ 877] = 11'h7cc;
assign sin_regfile[ 878] = 11'h7cd;
assign sin_regfile[ 879] = 11'h7ce;
assign sin_regfile[ 880] = 11'h7ce;
assign sin_regfile[ 881] = 11'h7cf;
assign sin_regfile[ 882] = 11'h7d0;
assign sin_regfile[ 883] = 11'h7d0;
assign sin_regfile[ 884] = 11'h7d1;
assign sin_regfile[ 885] = 11'h7d2;
assign sin_regfile[ 886] = 11'h7d2;
assign sin_regfile[ 887] = 11'h7d3;
assign sin_regfile[ 888] = 11'h7d4;
assign sin_regfile[ 889] = 11'h7d4;
assign sin_regfile[ 890] = 11'h7d5;
assign sin_regfile[ 891] = 11'h7d6;
assign sin_regfile[ 892] = 11'h7d6;
assign sin_regfile[ 893] = 11'h7d7;
assign sin_regfile[ 894] = 11'h7d7;
assign sin_regfile[ 895] = 11'h7d8;
assign sin_regfile[ 896] = 11'h7d9;
assign sin_regfile[ 897] = 11'h7d9;
assign sin_regfile[ 898] = 11'h7da;
assign sin_regfile[ 899] = 11'h7da;
assign sin_regfile[ 900] = 11'h7db;
assign sin_regfile[ 901] = 11'h7dc;
assign sin_regfile[ 902] = 11'h7dc;
assign sin_regfile[ 903] = 11'h7dd;
assign sin_regfile[ 904] = 11'h7dd;
assign sin_regfile[ 905] = 11'h7de;
assign sin_regfile[ 906] = 11'h7df;
assign sin_regfile[ 907] = 11'h7df;
assign sin_regfile[ 908] = 11'h7e0;
assign sin_regfile[ 909] = 11'h7e0;
assign sin_regfile[ 910] = 11'h7e1;
assign sin_regfile[ 911] = 11'h7e1;
assign sin_regfile[ 912] = 11'h7e2;
assign sin_regfile[ 913] = 11'h7e2;
assign sin_regfile[ 914] = 11'h7e3;
assign sin_regfile[ 915] = 11'h7e3;
assign sin_regfile[ 916] = 11'h7e4;
assign sin_regfile[ 917] = 11'h7e4;
assign sin_regfile[ 918] = 11'h7e5;
assign sin_regfile[ 919] = 11'h7e5;
assign sin_regfile[ 920] = 11'h7e6;
assign sin_regfile[ 921] = 11'h7e6;
assign sin_regfile[ 922] = 11'h7e7;
assign sin_regfile[ 923] = 11'h7e7;
assign sin_regfile[ 924] = 11'h7e8;
assign sin_regfile[ 925] = 11'h7e8;
assign sin_regfile[ 926] = 11'h7e9;
assign sin_regfile[ 927] = 11'h7e9;
assign sin_regfile[ 928] = 11'h7ea;
assign sin_regfile[ 929] = 11'h7ea;
assign sin_regfile[ 930] = 11'h7eb;
assign sin_regfile[ 931] = 11'h7eb;
assign sin_regfile[ 932] = 11'h7ec;
assign sin_regfile[ 933] = 11'h7ec;
assign sin_regfile[ 934] = 11'h7ed;
assign sin_regfile[ 935] = 11'h7ed;
assign sin_regfile[ 936] = 11'h7ed;
assign sin_regfile[ 937] = 11'h7ee;
assign sin_regfile[ 938] = 11'h7ee;
assign sin_regfile[ 939] = 11'h7ef;
assign sin_regfile[ 940] = 11'h7ef;
assign sin_regfile[ 941] = 11'h7ef;
assign sin_regfile[ 942] = 11'h7f0;
assign sin_regfile[ 943] = 11'h7f0;
assign sin_regfile[ 944] = 11'h7f1;
assign sin_regfile[ 945] = 11'h7f1;
assign sin_regfile[ 946] = 11'h7f1;
assign sin_regfile[ 947] = 11'h7f2;
assign sin_regfile[ 948] = 11'h7f2;
assign sin_regfile[ 949] = 11'h7f2;
assign sin_regfile[ 950] = 11'h7f3;
assign sin_regfile[ 951] = 11'h7f3;
assign sin_regfile[ 952] = 11'h7f4;
assign sin_regfile[ 953] = 11'h7f4;
assign sin_regfile[ 954] = 11'h7f4;
assign sin_regfile[ 955] = 11'h7f5;
assign sin_regfile[ 956] = 11'h7f5;
assign sin_regfile[ 957] = 11'h7f5;
assign sin_regfile[ 958] = 11'h7f6;
assign sin_regfile[ 959] = 11'h7f6;
assign sin_regfile[ 960] = 11'h7f6;
assign sin_regfile[ 961] = 11'h7f6;
assign sin_regfile[ 962] = 11'h7f7;
assign sin_regfile[ 963] = 11'h7f7;
assign sin_regfile[ 964] = 11'h7f7;
assign sin_regfile[ 965] = 11'h7f8;
assign sin_regfile[ 966] = 11'h7f8;
assign sin_regfile[ 967] = 11'h7f8;
assign sin_regfile[ 968] = 11'h7f8;
assign sin_regfile[ 969] = 11'h7f9;
assign sin_regfile[ 970] = 11'h7f9;
assign sin_regfile[ 971] = 11'h7f9;
assign sin_regfile[ 972] = 11'h7f9;
assign sin_regfile[ 973] = 11'h7fa;
assign sin_regfile[ 974] = 11'h7fa;
assign sin_regfile[ 975] = 11'h7fa;
assign sin_regfile[ 976] = 11'h7fa;
assign sin_regfile[ 977] = 11'h7fb;
assign sin_regfile[ 978] = 11'h7fb;
assign sin_regfile[ 979] = 11'h7fb;
assign sin_regfile[ 980] = 11'h7fb;
assign sin_regfile[ 981] = 11'h7fc;
assign sin_regfile[ 982] = 11'h7fc;
assign sin_regfile[ 983] = 11'h7fc;
assign sin_regfile[ 984] = 11'h7fc;
assign sin_regfile[ 985] = 11'h7fc;
assign sin_regfile[ 986] = 11'h7fd;
assign sin_regfile[ 987] = 11'h7fd;
assign sin_regfile[ 988] = 11'h7fd;
assign sin_regfile[ 989] = 11'h7fd;
assign sin_regfile[ 990] = 11'h7fd;
assign sin_regfile[ 991] = 11'h7fd;
assign sin_regfile[ 992] = 11'h7fe;
assign sin_regfile[ 993] = 11'h7fe;
assign sin_regfile[ 994] = 11'h7fe;
assign sin_regfile[ 995] = 11'h7fe;
assign sin_regfile[ 996] = 11'h7fe;
assign sin_regfile[ 997] = 11'h7fe;
assign sin_regfile[ 998] = 11'h7fe;
assign sin_regfile[ 999] = 11'h7fe;
assign sin_regfile[1000] = 11'h7ff;
assign sin_regfile[1001] = 11'h7ff;
assign sin_regfile[1002] = 11'h7ff;
assign sin_regfile[1003] = 11'h7ff;
assign sin_regfile[1004] = 11'h7ff;
assign sin_regfile[1005] = 11'h7ff;
assign sin_regfile[1006] = 11'h7ff;
assign sin_regfile[1007] = 11'h7ff;
assign sin_regfile[1008] = 11'h7ff;
assign sin_regfile[1009] = 11'h7ff;
assign sin_regfile[1010] = 11'h7ff;
assign sin_regfile[1011] = 11'h7ff;
assign sin_regfile[1012] = 11'h7ff;
assign sin_regfile[1013] = 11'h7ff;
assign sin_regfile[1014] = 11'h7ff;
assign sin_regfile[1015] = 11'h7ff;
assign sin_regfile[1016] = 11'h7ff;
assign sin_regfile[1017] = 11'h7ff;
assign sin_regfile[1018] = 11'h7ff;
assign sin_regfile[1019] = 11'h7ff;
assign sin_regfile[1020] = 11'h7ff;
assign sin_regfile[1021] = 11'h7ff;
assign sin_regfile[1022] = 11'h7ff;
assign sin_regfile[1023] = 11'h7ff;
endmodule